export interface getPreDataDto {
    type: string;
    id: string;
}

export interface getNextData {
    type: string;
    id: string;
}

export interface CommonResult<T>{
    code: number;
    msg: string;
    data: T;
}

export interface LicenseInfo {
    commodityId: string,
    id: string,
    licenseCode: string,
    licenseStandardCode: string,
    licenseTable: string
}

export interface ImageInfo {
    bigPicOss: string,
    middlePicOss: string,
    smallPicOss: string
}

//商品详情对象
export interface CommodityDetail{
    articleNo: string,
    brandId: string,
    brandName: string,
    brandStandardCode: string,
    classFirst: string,
    classFirstName: string,
    classFourth: string,
    classFourthName: string,
    classSecond: string,
    classSecondName: string,
    classThird: string,
    classThirdName: string,
    cnName: string,
    detailStandard: string,
    enabled: number,
    id: number,
    licenses: LicenseInfo[],
    managementCategory: string,
    minSaleUnit: string,
    packageParam: string,
    physicalForm: string,
    pictures: ImageInfo[],
    selfProduct: boolean,
    selfProductLine: string,
    specification: string,
    standardCode: string,
    tagPicture: string,
    updatedTime: string,
    useMethodStandard: string,
    commodityPicture:string,
    commodityType:number,
    status:string
}


// 品牌详情对象
export interface BrandDetail{
    cnName: string,
    commodityPicture: string,
    companyName: string,
    enName: string,
    logo: string,
    id: string,
    status: string,
    remark: string,
}
export interface CommodityReviewItem{
    "applyType": number,
    "articleNo": string,
    "brandId": string,
    "brandName": string,
    "brandStandardCode": string,
    "cnName": string,
    "commodityType": number | undefined,
    "createdTime": string,
    "batchApplyNo": string,
    "id": number | undefined,
    "licenseCode": string,
    "licenseStandardCode": string,
    "licenseTable": string,
    "managementCategory": string,
    "managementCategoryName": string,
    "minSaleUnit": string,
    "packageParam": string,
    "serialNo": string,
    "sourceTenantName": string,
    "specification": string,
    "standardCode": string,
    "tagPicture": string,
    "remark": string,
    "classFirst": string,
    "classSecond": string,
    "classThird": string,
    "classFourth": string,
    "physicalForm": string,
    "source": string
}

export type LicenseEntity = {
    "licenseCode": string,
    "licenseStandardCode": string,
    "standardCode": string,
    "licenseTable": string,
    "managementCategory": string,
    id:string
}
export interface CommodityDetailDto{
    "applyData": {
        "articleNo": string,
        "brandId": number,
        "brandName": string,
        "brandStandardCode": string,
        "cnName": string,
        "commodityType": number,
        "commodityTypeName": string,
        "createdTime": string,
        "licenses": LicenseEntity[],
        "managementCategory": string,
        "minSaleUnit": string,
        "minSaleUnitName": string,
        "packageParam": string,
        "specification": string,
        "standardCode": string,
        "tagPicture": string,
        "classFirst": string,
        "classSecond": string,
        "classThird": string,
        "classFourth": string
    },
    "applyInfo": {
        "applyType": number,
        "batchApplyNo": string,
        "id": number,
        "remark": string,
        "serialNo": string,
        "sourceTenantName": string
        "createdTime": string
        batchApplyType: string
    },
    "standardData": {
        "articleNo": string,
        "brandId": number,
        "brandName": string,
        "brandStandardCode": string,
        "cnName": string,
        "commodityType": 0,
        "commodityTypeName": string,
        "createdTime": string,
        "licenses": LicenseEntity[],
        "managementCategory": string,
        "minSaleUnit": string,
        "minSaleUnitName": string,
        "packageParam": string,
        "specification": string,
        "standardCode": string,
        "tagPicture": string,
        "classFirst": string,
        "classSecond": string,
        "classThird": string,
        "classFourth": string
    }
}
export interface CommodityApplyData{
    "articleNo": string,
    "brandId": number,
    "brandName": string,
    "brandStandardCode": string,
    "cnName": string,
    "commodityType": number,
    "commodityTypeName": string,
    "createdTime": string,
    "licenses": LicenseEntity[],
    "managementCategory": string,
    "minSaleUnit": string,
    "minSaleUnitName": string,
    "packageParam": string,
    "specification": string,
    "standardCode": string,
    "tagPicture": string,
    "classFirst": string,
    "classSecond": string,
    "classThird": string,
    "classFourth": string,
    "licenseType": number
}
export interface CommodityLicenseDetail{
    "agentAddress": string,
    "agentName": string,
    "annex": string,
    "applyType": number,
    "approvalDate": string,
    "approvalDepartment": string,
    "auditTime": string,
    "auditUserId": number,
    "changes": string,
    "comment": string,
    "storageConditions": string,
    "createdTime": string,
    "createdUserId": number,
    "effDate": string,
    "expectPurpose": string,
    "flagBit": number,
    "id": number,
    "licenseAddress": string,
    "licenseCode": string,
    "licenseName": string,
    "licenseType": number,
    "managementCategory": string,
    "mdResult": number,
    "otherContents": string,
    "periodValidity": string,
    "picture": string,
    "productDescription": "",
    "productName": string,
    "productionAddress": string,
    "serialNo": string,
    "source": string,
    "sourceDataId": string,
    "sourceDataNo": string,
    "sourceTenantId": string,
    "sourceTenantName": string,
    "specification": string,
    "specificationInAnnex": string,
    "standardCode": string,
    "status": number,
    "updatedTime": string,
    "updatedUserId": number,
    "usCreditCode": string,
    "remark": string,
}

export interface PartnerLicenseDetail{
    "applyType": number,
    "auditTime": string,
    "auditUserId": number,
    "businessDateStart": string,
    "businessPremises": string,
    "businessRecordCertificate": string,
    "businessScope": string,
    "companyName": string,
    "companyType": string,
    "createdTime": string,
    "createdUserId": number,
    "dateOfIncorporation": string,
    "diagnosisSubject": string,
    "entPrincipal": string,
    "filingDate": string,
    "filingDepartment": string,
    "flagBit": number,
    "id": number,
    "legalPerson": string,
    "licenseCode": string,
    "licenseHandleDate": string,
    "licenseName": string,
    "licenseType": number,
    "mark": string,
    "mdResult": number,
    "modeOfOperation": string,
    "nature": number,
    "organizer": string,
    "productRegistrationForm": string,
    "qualityManageName": string,
    "warehouseAddress": string,
    "serialNo": string,
    "source": string,
    "sourceDataId": string,
    "sourceDataNo": string,
    "sourceOfFunds": string,
    "sourceTenantId": string,
    "sourceTenantName": string,
    "standardCode": string,
    "startUpFunds": string,
    "status": number,
    "uniqueCheckCode": string,
    "unitLicensePicture": string,
    "updateTime": string,
    "updatedTime": string,
    "updatedUserId": number,
    "usCreditCode": string,
    "validityPeriod": string,
    "warehouseAddress": string,
    "websiteDomainName": string
}

export interface LicenseDetailDto{
    "applyData": CommodityLicenseDetail,
    "applyInfo": {
        "applyType": number,
        "batchApplyNo": string,
        "createdTime": string,
        "id": number,
        "remark": string,
        "serialNo": string,
        "sourceTenantName": string
    },
    "standardData": CommodityLicenseDetail
}
// 商品相似度对象
export interface SimilarityItem {
    articleNo: string,
    brandId: string,
    brandName: string,
    brandStandardCode: string,
    cnName: string,
    id: number,
    licenseCode: string,
    minSaleUnit: string,
    packageParam: string,
    similarity: number,
    specification: string,
    standardCode: string,
    tagPicture: string
}

// 待匹配商品审核请求对象
export interface AuditMatchRequestDto{
    articleNo: string,
    brandStandardCode: string,
    classFirst: string,
    classFourth: string,
    classSecond: string,
    classThird: string,
    cnName: string,
    comment: string,
    commodityId: number,
    commodityType: number,
    id: number,
    licenseStandardCode: string,
    licenseTable: string,
    managementCategory: string,
    mdResult: number,
    minSaleUnit: string,
    packageParam: string,
    physicalForm: string,
    specification: string,
    standardCode: string,
    tagIds: string[],
    tagPicture: string,
    updateMdField: {
        filingDepartment: string,
        licenseCode: string,
        productName: string,
        specification: string
    }
}



export interface TagEntity{
    bizTable:BizTable;
    code:string;
    name:string;
    tagType:string
}


export type BizTable = "ap_brand" | "ap_commodity" | "ap_commodity_license" | "ap_partner_license"